Ext.ns("AutoParts","AutoParts.Office","AutoParts.Util");//自定义命名空间

AutoParts.Office.AreaManagerPanel = function(config) {
	AutoParts.Office.AreaManagerPanel.superclass.constructor.call(this, config);
	var area_recordType = Ext.data.Record.create([
		{
			name : 'areaNo',
			mapping : 'areaNo',
			type : 'int'
		},{
			name : 'areaShortName',
			mapping : 'areaShortName',
			type : 'string'
		},{
			name : 'areaName',
			mapping : 'areaName',
			type : 'string'
		},{
			name : 'provinceName',
			mapping : 'provinceName',
			type : 'string'
		},{
			name : 'regionName',
			mapping : 'regionName',
			type : 'string'
		},{
			name : 'remark',
			mapping : 'remark',
			type : 'string'
		}
	]);
	
	var area_columnModel = new Ext.grid.ColumnModel({
		defaultSortable : false,
		columns : [{
			header : "地域编号",
			dataIndex : "areaNo", 
			hidden: true,
			width : 100
		},{
			header : "地域简称",
			dataIndex : "areaShortName",
			width : 100
		},{
			header : "地域名称",
			dataIndex : "areaName",
			width : 220
		},{
			header : "所属省份",
			dataIndex : "provinceName",
			width : 150
		},{
			header : "所属地市",
			dataIndex : "regionName",
			width : 150
		},{
			header : "备注信息",
			dataIndex : "remark",
			width : 150
		}]
	});

	var area_ds = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : 'autoPartsArea_loadAllArea'
		}),
		reader : new Ext.data.JsonReader({
			totalProperty : 'results',//对应JSON数据中results,用其记录总的数据量
			root : 'rows'//对应JSON数据中rows,用来记录每行数据
		},area_recordType)
	});
	
	area_ds.load({
		 params : {
			 start : 0,// =====向后台提供 当前页码
			 limit : 15// =====向后台提供 每页显示记录数
		}
	});
	
	 var area_pagingBar = new Ext.PagingToolbar({
		 pageSize : 15,
		 store : area_ds,
		 displayInfo : true,
		 displayMsg : '共{2}条地域数据.当前显示 {0} - {1}条地域数据',
		 emptyMsg : '当前没有地域信息'
	});
	
	//***************************地域信息**END*****************************************//
	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
	var add_area_form = new Ext.FormPanel({
		url : 'autoPartsArea_newArea',	
		labelAlign : 'right',
		buttonAlign : 'center',
		bodyStyle : 'padding:5px',
		frame : true,
		labelWidth : 80,
		defaultType : 'textfield',
		defaults : {
			columnWidth : 150,
			anchor : '95%'
		},
		items : [{
			fieldLabel : '地域名称',
			id : 'areaName',
			name : 'area.areaName',
			allowBlank : false,
			blankText : '[地域名称]不能为空',
			emptyText : '请填写地域名称'				
		},{
			fieldLabel : '所属省份',
			id : 'provinceName',
			name : 'area.provinceName',
			valueField : 'provinceName',
			displayField : 'provinceName',
			xtype : 'combo',
			editable : false,
			mode : 'remote',
			triggerAction : 'all',
			loadingText : '加载中...',
			store : ds_province_select,
			allowBlank : false,
			blankText : '[所属省份]不能为空',
			emptyText : '请选择所属省份',
			listeners : {
				select : function(combo,record,index){
					var regionName=Ext.getCmp("regionName"); 
					regionName.reset();
					ds_region_select.load({
						params : {
							provinceName : combo.value
						}
					});
				}
			}
		},{
			fieldLabel : '所属地市',
			id : 'regionName',
			name : 'area.regionName',
			valueField : 'regionName',
			displayField : 'regionName',
			xtype : 'combo',
			editable : false,
			mode : 'remote',
			triggerAction : 'all',
			loadingText : '加载中...',
			store : ds_region_select,
			allowBlank : false,
			blankText : '[所属地市]不能为空',
			emptyText : '请选择所属地市'
		},{
			fieldLabel : '备注信息',
			id : 'remark',
			name : 'area.remark'
		}],
		buttons : [{
			text : '提交',
			iconCls : 'icon-add',
			handler : function(){
				if(add_area_form.getForm().isValid()){
					var areaNameField = add_area_form.getForm().findField('areaName');
					add_area_form.getForm().submit({
						waitTitle : '新增地域信息',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							if("true" == action.result.success){
								var store = area_grid.getStore();
								if(store.data.length <= 15){
									var area = new area_recordType({
										areaNo : action.result.areaNo,
										areaName : action.result.areaName,
										areaShortName : action.result.areaShortName,
										provinceName : action.result.provinceName,
										regionName : action.result.regionName,
										remark : action.result.remark
									});
									store.insert(0, [area]);
									if (store.data.length > 20) {
										store.remove(store.getAt(store.data.length - 1));
									}
								}
								Ext.Msg.show({
									title : '新增成功',
									msg : '地域[' + areaNameField.getValue()
										  + ']添加成功!',
									buttons : Ext.MessageBox.OK,
									icon : Ext.Msg.INFO
								});
								areaNameField.reset();
							}else if("false" == action.result.success){
								Ext.Msg.show({
									title : '错误提示',
									msg : action.result.errorMsg,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR
								});
							}
						}
					});
				}
			}
		},{
			text : '重置',
			handler : function(){
				this.ownerCt.ownerCt.form.reset();
			}
		},{
			text : '取消',
			handler : function(){
				this.ownerCt.ownerCt.ownerCt.hide();
			}
		}]
	});
	
	//新增地域窗口
	var add_area_window = new Ext.Window({
		title : '新增地域窗口',
		width : 320,
		pageX : windowWidth/3, 
		pageY : 80,
		autoHeight : true,
		resizable : false,
		modal : true,
		closeAction : 'hide', //枚举值为：close(默认值)，当点击关闭后，关闭window窗口  hide,关闭后，只是hidden窗口
		listeners : {
			'hide' : function(){
				this.findById('areaName').ownerCt.form.reset();
			}
		},
		items : [add_area_form]
	});
	
	//新增地域按钮
	var add_area_btn = new Ext.Button({
		text : '新增地域',
		iconCls : 'icon-add',
		handler : function(){
			add_area_window.show();
		}
	});
	
	var edit_area_form = new Ext.FormPanel({
		labelAlign : 'right',
		buttonAlign : 'center',
		bodyStyle : 'padding:5px',
		frame : true,
		labelWidth : 80,
		defaultType : 'textfield',
		defaults : {
			columnWidth : 150,
			anchor : '95%'
		},
		items : [{
			fieldLabel : '地域编号',	
			id : 'areaNo',
			name : 'area.areaNo',
			editable : false
		},{
			fieldLabel : '地域简称',	
			id : 'areaShortName',
			name : 'area.areaShortName',
			editable : false
		},{
			fieldLabel : '地域名称',
			id : 'areaName',
			name : 'area.areaName',
			allowBlank : false,
			blankText : '[地域名称]不能为空',
			emptyText : '请填写地域名称'				
		}]
	});
	
	var edit_area_window = new Ext.Window({
		title : '编辑地域信息',
		width : 320,
		pageX : windowWidth/3, 
		pageY : 80,
		autoHeight : true,
		resizable : false,
		modal : true,
		closeAction : 'hide',
		listeners : {
			'hide' : function(){
				this.findById('areaName').ownerCt.form.reset();
			}
		},
		items : [edit_area_form]
	});
	
	var edit_area_btn = new Ext.Button({
		text : '编辑地域',
		iconCls : 'icon-edit',
		handler : function() {
			var record = area_grid.getSelectionModel().getSelected();
			if (record) {
				edit_area_window.show();
				edit_area_form.getForm().loadRecord(record);
			}
		}
	});
	
	var del_area_btn = new Ext.Button({
		text : '删除地域',
		iconCls : 'icon-del',
		handler : function() {
			var record = area_grid.getSelectionModel().getSelected();
			if (record) {
				Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
					if (btn == 'yes') {
						alert(record.data.areaNo)
					}
				});
			}
		}
	});
	
	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
	//**************************************************************************************//
	var area_grid = new Ext.grid.GridPanel({
		title : '地域列表',
		autoWidth : true,
		height : 440,
		stripeRows : true,
		columnLines : true,
		enableColumnMove : false,
		loadMask : {
			msg : '正在加载地域信息,请稍等...'
		},
		cm : area_columnModel,
		ds : area_ds,
		sm : new Ext.grid.RowSelectionModel({
			singleSelect : true
		}),
		bbar : area_pagingBar,
		tbar : [add_area_btn,'-',del_area_btn,'-',edit_area_btn]
	});
	
	this.add(area_grid);
}

Ext.extend(AutoParts.Office.AreaManagerPanel, Ext.Panel, {});